package com.ruoyi.business.service;

import com.alipay.api.AlipayApiException;
import com.ruoyi.business.response.ResponseData;

import java.util.Map;

public interface AlipayService {


    /**
     * 创建第三方支付订单请求（App支付）
     * @param orderNo
     *        订单号
     * @param totalAmount
     *        订单总金额（单位元。精确到小数点2位，例如：98.88）
     * @param body
     *        订单业务描述（用来区分商户系统的不同业务）
     * @return
     * @
     */
    ResponseData createOrder(String orderNo, String totalAmount, String body) ;

    /**
     * 发起支付宝扫码付
     * @param appId
     * @param privateKey
     * @param publicKey
     * @param orderNo
     * @param totalAmount
     * @param subject
     * @param body
     * @return
     * @
     */
    ResponseData createPrecreateOrder(String appId,String privateKey,String publicKey,String orderNo, String totalAmount, String subject ,String body);

    String createFundTransUniTransfer(String appId,String privateKey,String publicKey,String orderNo, String totalAmount, String subject ,String body) throws AlipayApiException;

    ResponseData createFundTransAppPay(String appId,String privateKey,String publicKey,String orderNo, String totalAmount, String subject ,String body) throws AlipayApiException;
    /**
     * 创建第三方支付订单请求（网页支付）
     * @param orderNo
     *        订单号
     * @param totalAmount
     *        订单总金额（单位元。精确到小数点2位，例如：98.88）
     * @param body
     *        订单业务描述（用来区分商户系统的不同业务）
     * @return
     * @
     */
    String createWapPayOrder(String orderNo,String totalAmount,String body) ;

    /**
     * 验证支付结果通知内容
     * @param params
     * @return
     * @
     */
    boolean checkPayResult(String alipayPublicKey,Map<String,String> params) ;

    /**
     * 检查app_id
     * @param app_id 支付宝回调的appId
     * @param appId 服务端的下单appId
     * @return
     * @
     */
    boolean checkAppId(String app_id,String appId) ;

    /**
     * 检查seller_email
     * @param seller_email
     * @return
     * @
     */
    boolean checkSellerEmail(String seller_email) ;


}
